package com.itany.corejava.code13_jdbc;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

/**
 * @author MissChen
 * @version 1.0
 * @date 2023 年12月11日 16:02
 */
public class Test03_PreparedStatement {
    private static final String JDBC_URL = "jdbc:mysql://127.0.0.1:3306/jdbc?useUnicode=true&characterEncoding=utf-8";

    public static void main(String[] args) {
        List<User> users=login("tom","123456");
        for(User u:users){
            System.out.println(u);
        }
    }

    public static List<User> login(String username, String password) {
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        List<User> users = new ArrayList<>();
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn=DriverManager.getConnection(JDBC_URL, "root", "root");
            String sql="select  id,username,password,phone,address from t_user  where  username=? and password=?";
            ps=conn.prepareStatement(sql);
            // 预编译SQL语句，为SQL中所有的变量赋值，每一个?号表示一个变量，按照顺序为每一个变量进行赋值，其顺序按照?顺序的，起始值为1

            // ps.setString(第几个参数,参数值);
            ps.setString(1,username);
            ps.setString(2,password);
            rs=ps.executeQuery();
            while(rs.next()){
                User user=new User();
                user.setId(rs.getInt("id"));
                user.setUsername(rs.getString("username"));
                user.setPassword(rs.getString("password"));
                user.setPhone(rs.getString("phone"));
                user.setAddress(rs.getString("address"));
                users.add(user);

            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return users;
    }

}
